package com.collection.provider.business.dao.sys;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;
import com.collection.api.entity.sys.SysRole;
import com.collection.api.entity.sys.SysRoleResource;

public interface SysRoleMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(SysRole record);

    int insertSelective(SysRole record);

    SysRole selectByPrimaryKey(Integer id);
    
    SysRoleResource selectBySysRoleResourceKey(Integer id);

    int updateByPrimaryKeySelective(SysRole record);

    int updateByPrimaryKey(SysRole record);
    
    /**
     * 功能描述:通过条件查找用户列表
     */
    List<Map<String, Object>> findRoleList(Map<String,Object> map);
    /**
     * 功能描述:通过条件统计用户数目
     */
    int countRoleList(Map<String,Object> map);

    
    /**
     * 功能描述:查找所有资源并根据角色Id将已关联的资源 checked =1
     * 
     * @param roleId
     * @return 集合
     */
    public List<Map<String, Object>> findResourcesByRoleId(@Param("roleId") int roleId,
                                                           @Param("appId") Integer appId);
 
    
    /**
     * 功能描述:保存角色和资源的映射关系
     * 
     * @return 记录数
     */
    public int saveRoleMRessource(@Param("resourceIds") List<String> resourceIds,
                                  @Param("roleId") int roleId);
    
    /**
     * 功能描述:统计角色下的用户数目
     */
    int countUserByRoleId(int roleId);
    
    /**
     * 功能描述:删除角色对应的资源
     * 
     * @param roleId
     * @return
     */
    public int delRoleByRoleId(@Param("roleId") int roleId);
    
    /**
     * 
     * 功能描述: 查询所有的角色
     * 
     * @return List<SysRole>
     * @version 1.0.0
     * @author Administrator
     */
    public List<SysRole> findRoleListAll();
    
    
}
